//Khai bao thu vien
#include<stdio.h>
#include<conio.h>
#include <math.h>
//Dinh nghia cac kieu du lieu cau truc
//DIEM:kieu du lieu cau truc gom 3 truong x,y
typedef struct
{
	char kitu;
    int x;
    int y;
}DIEM;
//Ham xuat diem
void xuat(DIEM m)
{
	gotoxy(m.x,m.y);
	printf("%c",m.kitu);
}
//Ham xoa diem
void xoa(DIEM m)
{
	gotoxy(m.x,m.y);
	printf(" ");
}
//Ham dich len
void dichlen(DIEM &m)
{
	m.x=m.x;
	m.y=m.y-1;	
}
//Ham dich trai
void dichtrai(DIEM &m)
{
	m.x=m.x-1;
	m.y=m.y;	
}
//Dich phai
void dichphai(DIEM &m)
{
	m.x=m.x+1;
	m.y=m.y;	
}
//Ham dich xuong
void dichxuong(DIEM &m)
{
	m.x=m.x;
	m.y=m.y+1;	
}
void main()
{
	DIEM m;
	char kt;
	printf("\n\tCHUONG TRINH CHUYEN KI TU");
	printf("\n\tDe thoat khoi chuong trinh nhan phim ESC");
	printf("\n\tNhap diem:");
	scanf("%c",&m.kitu);
	printf("\n\tNhap toa do:");
	scanf("%d%d",&m.x,&m.y);	
	printf("\n\tDe thoat khoi chuong trinh nhan phim ESC");
	getch();
	clrscr();
	xuat(m);
	kt=getch();
	if(kt==0)
	{
		kt=getch();
	}
	do
	{
		if (kt==72)
		{
			if(m.y==1)
			{
				xoa(m);
				m.y=42;
				xuat(m);
			}
			else	
			{
				xoa(m);
				dichlen(m);
				xuat(m);			
			}
			
			
		}
		if (kt==80)
		{
			if(m.y==42)
			{
				xoa(m);
				m.y=1;
				xuat(m);
			}
			else
			{
				xoa(m);
				dichxuong(m);
				xuat(m);
			}
			
		}
		if (kt==75)
		{
			if(m.x==1)
			{
				xoa(m);
				m.x=79;
				xuat(m);
			}
			else
			{
				xoa(m);
				dichtrai(m);
				xuat(m);
			}
		}
		if (kt==77)
		{
			if(m.x==79)
			{
				xoa(m);
				m.x=1;
				xuat(m);
			}
			xoa(m);
			dichphai(m);
			xuat(m);
		}	
		kt=getch();
	}
	while(kt!=27);
	
}	
